@@ -13,13 +13,14 @@ urlpatterns = [ |
||
| 13 | 13 |
url(r'^u/signup$', account_views.user_signup_api, name='user_signup_api'), # 用户注册 |
| 14 | 14 |
url(r'^u/login$', account_views.user_login_api, name='user_login_api'), # 用户登录 |
| 15 | 15 |
|
| 16 |
- url(r'^u/wx/authorize$', account_views.wx_authorize_api, name='wx_authorize_api'), # 用户登录 |
|
| 16 |
+ url(r'^u/wx/authorize$', account_views.wx_authorize_api, name='wx_authorize_api'), # 微信用户授权 |
|
| 17 | 17 |
] |
| 18 | 18 |
|
| 19 | 19 |
urlpatterns += [ |
| 20 | 20 |
url(r'^g/create$', group_views.group_create_api, name='group_create_api'), # 群组创建 |
| 21 | 21 |
url(r'^g/detail$', group_views.group_detail_api, name='group_detail_api'), # 群组详情 |
| 22 | 22 |
url(r'^g/update$', group_views.group_update_api, name='group_update_api'), # 群组更新 |
| 23 |
+ url(r'^g/list$', group_views.group_list_api, name='group_list_api'), # 群组列表 |
|
| 23 | 24 |
url(r'^g/join$', group_views.group_join_api, name='group_join_api'), # 申请加群 |
| 24 | 25 |
url(r'^g/lock$', group_views.group_lock_api, name='group_lock_api'), # 群组锁定 |
| 25 | 26 |
url(r'^g/remove$', group_views.group_remove_api, name='group_remove_api'), # 成员移除 |
@@ -0,0 +1,19 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+from __future__ import unicode_literals |
|
| 3 |
+ |
|
| 4 |
+from django.db import models, migrations |
|
| 5 |
+ |
|
| 6 |
+ |
|
| 7 |
+class Migration(migrations.Migration): |
|
| 8 |
+ |
|
| 9 |
+ dependencies = [ |
|
| 10 |
+ ('group', '0005_groupuserinfo_current_id'),
|
|
| 11 |
+ ] |
|
| 12 |
+ |
|
| 13 |
+ operations = [ |
|
| 14 |
+ migrations.AddField( |
|
| 15 |
+ model_name='groupuserinfo', |
|
| 16 |
+ name='avatar', |
|
| 17 |
+ field=models.CharField(help_text='\u7528\u6237\u5934\u50cf', max_length=255, null=True, verbose_name='avatar', blank=True), |
|
| 18 |
+ ), |
|
| 19 |
+ ] |
@@ -83,6 +83,7 @@ class GroupUserInfo(CreateUpdateMixin): |
||
| 83 | 83 |
user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识') |
| 84 | 84 |
current_id = models.IntegerField(_(u'current_id'), default=-1, help_text=u'当前群组照片ID') |
| 85 | 85 |
nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称') |
| 86 |
+ avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像') |
|
| 86 | 87 |
admin = models.BooleanField(_(u'admin'), default=False, help_text=u'群组管理员') |
| 87 | 88 |
user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=APPLYING) |
| 88 | 89 |
passed_at = models.DateTimeField(_(u'passed_at'), blank=True, null=True, help_text=_(u'通过时间')) |
@@ -101,6 +102,7 @@ class GroupUserInfo(CreateUpdateMixin): |
||
| 101 | 102 |
return {
|
| 102 | 103 |
'user_id': self.user_id, |
| 103 | 104 |
'nickname': self.nickname, |
| 105 |
+ 'avatar': self.avatar, |
|
| 104 | 106 |
'admin': self.admin, |
| 105 | 107 |
} |
| 106 | 108 |
|
@@ -44,6 +44,7 @@ def group_create_api(request): |
||
| 44 | 44 |
group_id=group_id, |
| 45 | 45 |
user_id=user_id, |
| 46 | 46 |
nickname=user.final_nickname, |
| 47 |
+ avatar=user.avatar, |
|
| 47 | 48 |
admin=True, |
| 48 | 49 |
user_status=GroupUserInfo.PASSED, |
| 49 | 50 |
passed_at=tc.utc_datetime(), |
@@ -134,6 +135,26 @@ def group_update_api(request): |
||
| 134 | 135 |
}) |
| 135 | 136 |
|
| 136 | 137 |
|
| 138 |
+def group_list_api(request): |
|
| 139 |
+ user_id = request.POST.get('user_id', '')
|
|
| 140 |
+ |
|
| 141 |
+ group_users = GroupUserInfo.objects.filter(user_id=user_id) |
|
| 142 |
+ groups = [] |
|
| 143 |
+ for group_user in group_users: |
|
| 144 |
+ try: |
|
| 145 |
+ groups.append(GroupInfo.objects.get(group_id=group_user.group_id).data) |
|
| 146 |
+ except GroupInfo.DoesNotExist: |
|
| 147 |
+ pass |
|
| 148 |
+ |
|
| 149 |
+ return JsonResponse({
|
|
| 150 |
+ 'status': 200, |
|
| 151 |
+ 'message': u'获取群组列表成功', |
|
| 152 |
+ 'data': {
|
|
| 153 |
+ 'groups': groups, |
|
| 154 |
+ }, |
|
| 155 |
+ }) |
|
| 156 |
+ |
|
| 157 |
+ |
|
| 137 | 158 |
def group_join_api(request): |
| 138 | 159 |
group_id = request.POST.get('group_id', '')
|
| 139 | 160 |
user_id = request.POST.get('user_id', '')
|
@@ -173,6 +194,7 @@ def group_join_api(request): |
||
| 173 | 194 |
user_id=user_id, |
| 174 | 195 |
current_id=group_photo and group_photo.id or -1, |
| 175 | 196 |
nickname=nickname or user.final_nickname, |
| 197 |
+ avatar=user.avatar, |
|
| 176 | 198 |
admin=False, |
| 177 | 199 |
user_status=GroupUserInfo.PASSED, |
| 178 | 200 |
passed_at=tc.utc_datetime(), |
@@ -130,20 +130,6 @@ def session_detail_api(request, session): |
||
| 130 | 130 |
'assign_ip': ip_addr(request), |
| 131 | 131 |
'assign_at': tc.utc_datetime(), |
| 132 | 132 |
}) |
| 133 |
- # try: |
|
| 134 |
- # user = UserInfo.objects.get(user_id=user_id) |
|
| 135 |
- # except UserInfo.DoesNotExist: |
|
| 136 |
- # user = None |
|
| 137 |
- # |
|
| 138 |
- # if not user: |
|
| 139 |
- # assign_ip, assign_at = ip_addr(request), tc.utc_datetime() |
|
| 140 |
- # user = UserInfo.objects.create( |
|
| 141 |
- # user_id=CurtailUUID.uuid(UserInfo, 'user_id'), |
|
| 142 |
- # user_status=UserInfo.ASSIGN, |
|
| 143 |
- # assign_ip=assign_ip, |
|
| 144 |
- # assign_at=assign_at, |
|
| 145 |
- # ) |
|
| 146 |
- |
|
| 147 | 133 |
user_id = user.user_id |
| 148 | 134 |
|
| 149 | 135 |
# 判断通过 session_id 创建的群组是否存在,如果不存在,则直接创建 |
@@ -153,19 +139,6 @@ def session_detail_api(request, session): |
||
| 153 | 139 |
'group_from': GroupInfo.SESSION_GROUP, |
| 154 | 140 |
'session_id': session, |
| 155 | 141 |
}) |
| 156 |
- # try: |
|
| 157 |
- # group = GroupInfo.objects.get(session_id=session) |
|
| 158 |
- # except GroupInfo.DoesNotExist: |
|
| 159 |
- # group = None |
|
| 160 |
- # |
|
| 161 |
- # if not group: |
|
| 162 |
- # group = GroupInfo.objects.create( |
|
| 163 |
- # group_id=CurtailUUID.uuid(GroupInfo, 'group_id'), |
|
| 164 |
- # admin_id=user_id, |
|
| 165 |
- # group_from=GroupInfo.SESSION_GROUP, |
|
| 166 |
- # session_id=session, |
|
| 167 |
- # ) |
|
| 168 |
- |
|
| 169 | 142 |
group_id = group.group_id |
| 170 | 143 |
|
| 171 | 144 |
# 判断 group_id/user_id 的群组用户是否存在,如果不存在,则直接创建 |
@@ -178,40 +151,6 @@ def session_detail_api(request, session): |
||
| 178 | 151 |
'passed_at': tc.utc_datetime(), |
| 179 | 152 |
}) |
| 180 | 153 |
|
| 181 |
- # try: |
|
| 182 |
- # group = GroupInfo.objects.get(session_id=session) |
|
| 183 |
- # group_id = group.group_id |
|
| 184 |
- # group_photo = GroupPhotoInfo.objects.filter(group_id=group_id).last() |
|
| 185 |
- # if not GroupUserInfo.objects.filter( |
|
| 186 |
- # group_id=group_id, |
|
| 187 |
- # user_id=user_id |
|
| 188 |
- # ).exists(): |
|
| 189 |
- # GroupUserInfo.objects.create( |
|
| 190 |
- # group_id=group_id, |
|
| 191 |
- # user_id=user_id, |
|
| 192 |
- # current_id=group_photo and group_photo.id or -1, |
|
| 193 |
- # nickname=user.username, |
|
| 194 |
- # admin=False, |
|
| 195 |
- # user_status=GroupUserInfo.PASSED, |
|
| 196 |
- # passed_at=tc.utc_datetime(), |
|
| 197 |
- # ) |
|
| 198 |
- # except GroupInfo.DoesNotExist: |
|
| 199 |
- # group_id = CurtailUUID.uuid(GroupInfo, 'group_id') |
|
| 200 |
- # group = GroupInfo.objects.create( |
|
| 201 |
- # group_id=group_id, |
|
| 202 |
- # admin_id=user_id, |
|
| 203 |
- # group_from=GroupInfo.SESSION_GROUP, |
|
| 204 |
- # session_id=session, |
|
| 205 |
- # ) |
|
| 206 |
- # GroupUserInfo.objects.create( |
|
| 207 |
- # group_id=group_id, |
|
| 208 |
- # user_id=user_id, |
|
| 209 |
- # nickname=user.username, |
|
| 210 |
- # admin=True, |
|
| 211 |
- # user_status=GroupUserInfo.PASSED, |
|
| 212 |
- # passed_at=tc.utc_datetime(), |
|
| 213 |
- # ) |
|
| 214 |
- |
|
| 215 | 154 |
photos = PhotosInfo.objects.filter(session_id=session) |
| 216 | 155 |
return JsonResponse({
|
| 217 | 156 |
'status': 200, |